package org.zn.mvcbase.controller;

import java.util.Map;

import org.springframework.validation.BindingResult;
import org.zn.mvcbase.response.ResponseMessage;
import org.zn.mvcbase.validate.ValidatedException;
import org.zn.mvcbase.validate.ValidatedResult;

/**
 * @ProjectName:91isoft_oa
 * @Description: 
 * @Copyright: Copyright (c) 2016

 * @author: 周楠
 * @date 2016年3月25日 上午7:59:47
 */

public class ValidatedController extends HttpServletController{
	
	protected final static String   VALIDMESSAGESKEY ="validerrors";
	
	/**
	 * 检验验证错误
	 * @MethodName:hasErrors
	 * @author: 周楠
	 * @date 2016年3月4日 下午2:22:31
	 * @param br
	 * @return
	 */
	
	public void hasErrors(BindingResult br) {

		ValidatedResult vr = new ValidatedResult();
		vr.dealBindingResult(br);
		request.setAttribute(VALIDMESSAGESKEY, vr);

        if(br.hasErrors()){
    	  
           throw new ValidatedException(vr, "data Valid error");
        	
        }	

	}
	public void hasErrors(BindingResult br,String forwardurl) {

		ValidatedResult vr = new ValidatedResult();
		vr.dealBindingResult(br);
		
		vr.setForwardurl(forwardurl);
		
		request.setAttribute(VALIDMESSAGESKEY, vr);

        if(br.hasErrors()){
    	  
           throw new ValidatedException(vr, "data Valid error");
        	
        }	

	}
	
	

	/**
	 * 获取验证错误信息 已装入 request
	 * @MethodName:getErrorsMap
	 * @author: 周楠
	 * @date 2016年3月4日 下午2:23:12
	 * @return
	 */
	public Map<String, String[]> getErrorsMap() {

		ValidatedResult vr = (ValidatedResult) request
				.getAttribute(VALIDMESSAGESKEY);
		return vr.getErrorsMap();

	}

	/**
	 * 获取 ValidatedResult 验证结果封装信息对象
	 * @MethodName:getValidatedResult
	 * @author: 周楠
	 * @date 2016年3月9日 下午5:02:01
	 * @return
	 */
	public ValidatedResult getValidatedResult(){
		
		ValidatedResult vr = (ValidatedResult) request
				.getAttribute(VALIDMESSAGESKEY);
		return vr;
	}
	
	
	public ResponseMessage getValidatedMessage(){
		
		ValidatedResult vr = (ValidatedResult) request
				.getAttribute(VALIDMESSAGESKEY);
		return vr.getValidatedMessage();
		
	}
	

}
